/**
 * 定义命名空间
 */
Ext.namespace('com.tx');

com.tx.First = function() {
	//私有成员
	var msg = 'hello world!';
	
	//私有方法
	function priMethod() {
		alert('private method');
	};
	
	//公有方法
	return {
		//公有成员
		init:function() {
			alert('init');
			alert(msg);
		},
		method:function() {
			alert('method');
		}
	};
};

var first = new com.tx.First();
alert('first.msg:' + first.msg);
//first.priMethod();
first.init();
first.method();

//extjs实现继承
com.tx.Second = function() {
	//调用父类构造方法
//	Ext.apply(this.Second(), com.tx.First());
};
//Second继承First
Ext.extend(com.tx.Second, com.tx.First, {
	//新方法
	fun:function(i) {
		return i * i;
	},
	//重写的方法
	method:function() {
		alert('Second::method');
	}
});

//测试
var second = new com.tx.Second();
alert(second.fun(5));
second.method();
//?为什么这样继承不能调用父类的公有方法init
second.init();